package com.cib.icarus.core.utils.internals;

/**
 * @author goomab
 */
public class CalculateUtils {

    /**
     * 计算给定总数和页面大小下的页数
     * 此方法的核心逻辑是计算总数量除以页面大小的商和余数，如果余数为0，则总页数正好为商；如果余数不为0，则总页数为商加1。
     * 这是因为在分页中，如果有余数，则需要额外一页来包含这些余下的数量。
     * <p>
     * 异常情况：当页面大小为0时，抛出IllegalArgumentException异常。
     *
     * @param total    总数，代表需要分页的全部数量
     * @param pageSize 页面大小，即每页包含的数量
     * @return 页数，计算结果为总页数
     */
    public static int pageCnt(int total, int pageSize) {
        if (pageSize == 0) {
            throw new IllegalArgumentException("The dividend cannot be 0");
        }
        return total % pageSize == 0 ? total / pageSize : total / pageSize + 1;
    }


}
